#include<bits/stdc++.h>
//这题的图形是一个畸形的矩形，所以要先找到这个矩形的边界
//不是一个正规的矩形
using namespace std;
int a[300][300]= {0},v[300][300]={0},dx[4]= {0,0,1,-1},dy[4]= {1,-1,0,0};
int mx=0,my=0,nx=999,ny=999;
bool jdg(int x,int y){
    bool f1=(x>=nx&&x<=mx&&y>=ny&&y<=my);
    bool f2=(a[x-1][y]%2==0&&a[x+1][y]%2==0&&a[x][y-1]%2==0&&a[x][y+1]%2==0);
    return f1&&f2&&!v[x][y];
}
void dfs(int x,int y){
    v[x][y]=1;
    a[x][y]=2;
    for(int i=0;i<4;i++){
        int tx=x+dx[i],ty=y+dy[i];
        if(jdg(tx,ty))dfs(tx,ty);
    }
}
int main() {
    int n,x,y;
    char c;
    cin>>n;
    x=y=101;
    mx=max(mx,x),my=max(my,y);
    nx=min(nx,x),ny=min(ny,y);
    a[x][y]=1;
    while(n--) {
        cin>>c;
        if(c=='U') {
            x--;
        }
        if(c=='D') {
            x++;
        }
        if(c=='L') {
            y--;
        }
        if(c=='R') {
            y++;
        }
        a[x][y]=1;
        mx=max(mx,x),my=max(my,y);
        nx=min(nx,x),ny=min(ny,y);
    }
    mx++,my++,nx--,ny--;
    for(int i=nx;i<=mx;i++){
        if(jdg(i,ny))dfs(i,ny);
        if(jdg(i,my))dfs(i,my);
    }
    for(int i=ny;i<=my;i++){
        if(jdg(nx,i))dfs(nx,i);
        if(jdg(mx,i))dfs(mx,i);
    }
    for(int i=nx; i<=mx; i++) {
        for(int j=ny; j<=my; j++) {
            if(a[i][j]==0)cout<<'*';
            else cout<<' ';
        }
        if(i!=mx)cout<<endl;
    }
    return 0;
}